package com.yunxi.service.localService.sto;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.service.IServicePlus;
import com.yunxi.model.order.PmsVehicleStock;
import com.yunxi.sto.pojo.*;
import com.yunxi.vehicle.pojo.VehicleCatalogListVO;
import com.yunxi.vehicle.pojo.VehicleSeriesListVO;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;

/**
 * <p>
 * 经销商车辆库存 服务类
 * </p>
 *
 * @author caoYong
 * @since 2019-05-29
 */
public interface VehicleStockMService extends IServicePlus<PmsVehicleStock> {

    void frozen(List<VehicleStockFrozenVO> list, String isFrozen, Integer frozenReasonKey, String userId) throws Exception;

    void repairInOut(List<String> list,Integer isRepairOut) throws Exception;

    String queryVehiclePackageByList(List<String> list);

    /**
     * 经销商整车入库
     */
    @Transactional
    void updateDealerStock(String vin);

    List<VehicleSeriesListVO> seriesList()throws Exception;

    List<VehicleCatalogListVO> catalogList()throws Exception;

    List<VehicleStockQueryVO> export(VehicleStockQueryVO vehicleStockQueryVO) throws Exception;

    VehicleStockVO findByVehicleId(String vehicleId);

    PageInfo maintainPageByVo(Object vo, Integer pageNum, Integer pageSize);

    List<VehicleStockMaintainVO> mainTainExport(VehicleStockQueryVO vehicleStockQueryVO);

    PageInfo<VehicleStockQueryVO> sharePage(VehicleStockQueryVO vehicleStockQueryVO,Integer pageNum,Integer pageSize)throws Exception;

    PageInfo<VehicleStockQueryVO> newSharePage(VehicleStockQueryVO vehicleStockQueryVO,Integer pageNum,Integer pageSize)throws Exception;

    PageInfo<VehicleStockQueryVO> financePage(VehicleStockQueryVO vehicleStockQueryVO,Integer pageNum,Integer pageSize)throws Exception;

    PageInfo<VehicleStockQueryVO> shareList(VehicleStockQueryVO vehicleStockQueryVO,Integer pageNum,Integer pageSize)throws Exception;

    String queryPartnerType(String partnerCode)throws Exception;

    void newFrozenHis(String isFrozen, VehicleStockFrozenVO vo, String vin,Integer frozenType);

    List<VehicleStockFrozenListVO> exportFrozenList()throws Exception;

    List<VehicleStockReportVO> stockReport(VehicleStockReportVO vehicleStockReportVO);

    List<VehicleStockReportDetailVO> stockReportDetail(VehicleStockReportDetailVO vehicleStockReportDetailVO);

    List<VehicleStockQueryVO> maintainList(VehicleStockQueryVO vo);
}
